package test27.regexp;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

//演示非捕获分组
public class RegExp08 {
    public static void main(String[] args) {
        String content = "hello老师 hello同学 hello学生";
        //找到 hello老师,hello同学,hello学生 子字符串
        //String regStr = "hello老师|hello同学|hello学生";
        //上面的写法可以等价非捕获分组, 注意：不能 matcher.group(1)
        //String regStr = "hello(?:老师|同学|学生)";

        //找到 hello 这个关键字,但是要求只是查找hello老师和 hello同学 中包含有的hello
        //下面也是非捕获分组，不能使用 matcher.group(1)
        //String regStr = "hello(?=老师|同学)";

        //找到 hello 这个关键字,但是要求只是查找 不是 (hello老师 和 hello同学) 中包含有的hello
        //下面也是非捕获分组，不能使用 matcher.group(1)
        String regStr = "hello(?!老师|同学)";

        Pattern pattern = Pattern.compile(regStr);
        Matcher matcher = pattern.matcher(content);
        while (matcher.find()) {
            System.out.println("找到: " + matcher.group(0));
        }
    }
}
